﻿using System.Collections.Generic;
using System.Drawing;
using MentalAlchemy.Atomics;
using MentalAlchemy.Molecules.Image.Deprecated;
//using MentalAlchemy.Molecules.Image.Deprecated;

namespace MentalAlchemy.Molecules.Image.Algorithms
{
	public class ImageClassificaionPair
	{
		public Bitmap image;
		public ClassInfo classInfo;
	}

	public class ImageDescriptionPair
	{
		public BasicImageDescription image;
		public ClassInfo classInfo;
	}

	public interface IImageClassifier
	{
		string Name { get; set; }

		/// <summary>
		/// Performs training procedure for the given set of training data and image description.
		/// </summary>
		/// <param name="data"></param>
		void Train(IList<ImageDescriptionPair> data);
		
		/// <summary>
		/// Method to recognize image class by image description.
		/// </summary>
		/// <param name="image"></param>
		/// <returns></returns>
		ClassInfo Recognize(BasicImageDescription image);
	}
}
